home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Reference Guide / C-C++ Interactive Reference Guide.iso / c_ref / csource5 / 340_01 / help.txt < prev    next >
Text File  |  1991-01-17  |  65KB  |  2,155 lines

  1. ****************************************************************
  2. *                                                              *
  3. *                  C    -   W I N D O W                        *
  4. *                                                              *
  5. *               screen formatting system for                   *
  6. *                                                              *
  7. *             MS C, MS Quick C, Turbo C, Lattice C             *
  8. *                                                              *
  9. ****************************************************************
  10.  
  11.  
  12.  
  13.                         Release    1.0
  14.  
  15.  
  16.                   (C) 1991, Ebnet Software
  17.  
  18.  
  19.     D - 8000 München 70, Passauer Strasse 2 b, Tel. 089/7698755
  20.                            - Germany - 
  21.  
  22.  
  23.  
  24.  
  25.  
  26. 1 Shareware
  27. -----------
  28.  
  29. This package contains release 1.0 of the utility C-WINDOW.
  30. All Rights are reserved.
  31.  
  32. This software is being distributed as shareware. The release you
  33. have is free to use and to copy. 
  34.  
  35. Disclaimer of warranty.
  36.  
  37. This software is provided without any express or implied war-
  38. ranties whatsoover. Because of the diversity of conditions and
  39. hardware under which this software may be used, no warranty 
  40. for a particular purpose is offered. You are advised to test 
  41. this software utility thoroughly before relying on it. The user
  42. must assume the entire risk of using this software.
  43.  
  44. If you agree with the software tool C-WINDOW you should become
  45. a registered user for a charges of $ 49.--. If you do it you will
  46. get the following performances
  47.  
  48.   - the right to use C-WINDOW
  49.   - the full release of C-WINDOW (with all C-memory-models)
  50.   - user support
  51.   - update service for the following releases for a charges of
  52.     only $ 25.--.
  53.   - an extensive user manual
  54.  
  55. Just when there are fair users it will be possible to do a further
  56. development of C-WINDOW.
  57.  
  58. You have the chance to test the software tool C-WINDOW. If you
  59. will use it in future you are expected to become a registered user.
  60.  
  61. A registration form you can find in the file REGIST.FOR. You can 
  62. get it by the DOS command PRINT.
  63.  
  64. The release you have isn't a cripple ware. You can use the comple-
  65. te functions of C-WINDOW.
  66.  
  67. In the shareware release you have, there is a copyright note at
  68. line 24 of all screen formats.
  69.  
  70.  
  71. 2 Format generator system UniForm
  72. ---------------------------------
  73.  
  74. To generate the screen formats for C-WINDOW release 3.0 of the 
  75. universal format generator UniForm is in this package.
  76.  
  77. UniForm is an universal format generator for the application with
  78.  
  79.   C-WINDOW           MS C, MS Quick C, Turbo C, Lattice C
  80.  
  81.   BASIC-WINDOW       MS Basic, MS Quick Basic, Turbo Basic, Power Basic
  82.                      GW Basic, MS Basic Interpreter, Basica
  83.  
  84.   PASCAL-WINDOW      MS Pascal, MS Quick Pascal, Turbo Pascal
  85.  
  86.   COBOL-WINDOW       MS Cobol, MF VS Cobol, MF Level2 Cobol,
  87.                      MF Personal Cobol, MF Professional Cobol,
  88.                      Noweck Cobol (Shareware compiler)
  89.  
  90.   ASSEMBLER-WINDOW   MS Assembler, MS Quick Assembler, Turbo Assembler
  91.  
  92.   FORTRAN-WINDOW     MS Fortran
  93.  
  94.   CLIPPER-WINDOW     Clipper 87, Clipper V5
  95.  
  96. Each of that products is available in a shareware release.
  97. You can get the full release for a charge of $49 for each product.
  98.  
  99.  
  100. Contents
  101. --------
  102.  
  103. 3       why C-WINDOW
  104. 4       how to use C-WINDOW
  105. 5       a simple sample
  106. 6       line up
  107. 6.1     system requirements
  108. 6.2     disc contents
  109. 6.3     software installation
  110. 7       format generation with UniForm
  111. 7.1     run mode
  112. 7.1.1   invoke format generator
  113. 7.1.2   adapt options
  114. 7.1.3   define format name and format size
  115. 7.1.4   edit format layout
  116. 7.1.5   define field names and attributes
  117. 7.1.6   format management
  118. 7.2     functional overview
  119. 7.2.1   main menu
  120. 7.2.2   adapt options
  121. 7.2.3   format layout
  122. 7.2.4   field names/attributes
  123. 7.2.5   show format
  124. 7.2.6   show source code
  125. 7.2.7   format contents
  126. 8       format application with C-WINDOW
  127. 8.1     run mode
  128. 8.1.1   source file
  129. 8.1.1.1 standard include file
  130. 8.1.1.2 variables definition file
  131. 8.1.1.3 layout file
  132. 8.1.1.4 parameters for subroutine
  133. 8.1.1.5 call subroutine UNIF
  134. 8.1.1.6 analyze return field
  135. 8.1.2   compile/link
  136. 8.1.3   program call
  137. 8.2.    run compilerspecific
  138. 8.2.1   run in MS C, MS Quick C
  139. 8.2.2   run in Turbo C
  140. 8.2.3   run in Lattice C
  141. 9       run in an example
  142. 9.1     example "order" in MS C, MS Quick C
  143. 9.2     example "order" in Turbo C
  144. 9.3     example "order" in Lattice C
  145. 10      example for "dynamic attribute modification"
  146. 10.1    example "dynamic" in MS C, MS Quick C
  147. 10.2    example "dynamic" in Turbo C
  148. 10.3    example "dynamic" in Lattice C
  149. 11      cursor adressing
  150. 12      register form
  151.  
  152.  
  153. 3 Why C-WINDOW
  154. --------------
  155.  
  156. Its all the same. A comfortable user surface is absolutely necessary 
  157. today. User programs as well as system programs needs with a monochrome 
  158. display or a colour monitor a good layout to get a professional image.
  159.  
  160. But - to program windows, menus and so on is relatively difficult and 
  161. takes a lot of time. Moreover such routines should be implemented in a 
  162. quick assembler coding. Indeed - a lot of reasons to integrate the 
  163. screen layout into the program by a conform help.
  164.  
  165. However, it is not so easy to find a conform tool. Often the tool
  166. is hardly to handle, the function extent is not sufficent, the
  167. user guide is bad or there are other reasons to be unsatisfied.
  168. And you can be shure that you can use the tool just in one 
  169. compiler.
  170.  
  171. C-WINDOW as an universal formatting system will help you in the future. 
  172. The implemantation of a professional screen layout into your C programs 
  173. will take at best a moment of time. C-WINDOW generates automatically a 
  174. source code example when you generate a screen format. It's a help for 
  175. professionals and beginners in C programming, too.
  176.  
  177. Because of it's universal subroutine interface C-WINDOW can be used in 
  178. all the usual C compiler.
  179.  
  180. C-WINDOW is a complete solution for a screen management system and offers 
  181. you the following highlights
  182.  
  183. format generation
  184.  
  185.    - interactive format generation
  186.    - mouse support
  187.    - a lot of edit functions
  188.    - alphanumeric numeric and selectable fields
  189.    - variable field, text, frame and shadow attributes
  190.    - format managemant options
  191.  
  192. format application
  193.  
  194.    - format application in all important C compiler
  195.    - format application with one subroutine call
  196.    - automatic source example
  197.    - windows, menus, popups, pulldowns ...
  198.    - dynamic attibute modification
  199.    - mouse support in the program
  200.    - return of function key
  201.    - support of monochrome and colour display
  202.  
  203.  
  204. 4 How to use C-WINDOW 
  205. -------------------------
  206.  
  207. You define the format with the UniForm format generator 
  208. (UNIFORM.EXE) in an interactive mode...
  209.  
  210. in menu "main menu"
  211.   - the format name 
  212.   - the format size
  213.  
  214. in menu "options"
  215.   - the compiler you want to work with
  216.   - the directory for the format files
  217.   - standard field names and attributes for fields, text, frame 
  218.     and shadow
  219.  
  220. in menu "format layout"
  221.   - the format layout with (without) variable fields
  222.  
  223. in menu "field names/ attributes"
  224.   - the field names and attributes of the variable fields
  225.  
  226. You include into the source code
  227.   - the standard include file for the used compiler
  228.   - the variables definition file for the variable fields
  229.   - the subroutine call with parameters
  230.  
  231. You compile the source code and link it with the respective 
  232. C-WINDOW interface module and start the program.
  233.  
  234. In future in all your programs there will be a professional screen 
  235. layout. A professional one like in the following example.
  236.  
  237.   -  example for screen layout
  238.  
  239.      ╔════════════════════════════════════════════════════════════════╗
  240.      ║   Compilieren Programm      BEISPIEL                           ║
  241.      ║ ╔═════════════════════════════════════════════════════════════╗║
  242.      ║ ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║║
  243.      ║1║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ Datum 10 01 89 ░░░░║║
  244.      ║ ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║║
  245.      ║2║░░░░░░░╔══════════════════════════════════════╗░░░░░░░░░░░░░░║║
  246.      ║ ║░ Suchf║──────────────────────────────────────║░░░░░░░░░░░░░░║║
  247.      ║ ║░░░░░░░║                                      ║░░░░░░░░░░░░░░║║
  248.      ║ ║░ Datei║  Treffer     12╔═════════════════════╩═══════╗░░░░░░║║
  249.      ║ ║░░░░░░░║                ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║░░░░░░║║
  250.      ║ ║░ Feldk║  Kataloge     4║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║░░░░░░║║
  251.      ║ ║░░░░░░░║                ║░░░░░ I n f o  !!!!!!! ░░░░░░║░░░░░░║║
  252.      ║ ║░░░░░░░║────────────────║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║░░░░░░║║
  253.      ║ ║░░░░░░░╚════════════════╣─────────────────────────────║░░░░░░║║
  254.      ║ ╚════════════════════════╣░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║══════╝║
  255.      ║                          ║░░ Schwere Fehler ░░░ 22 ░░░░║       ║
  256.   ╔══╩══════════════════════════╩═════╗░░░░░░░░░░░░░░░░░░░░░░░║   123 ║
  257.   ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║chte Fehler ░░░  1 ░░░░║       ║
  258.   ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║░░░░░░░░░░░░░░░░░░░░░░░║   000 ║
  259.   ║░░░░░░                     ░░░░░░░░║  Warnungen ░░░  0 ░░░░╠═══════╝
  260.   ║░░░░░░   Fehler     !!!    ░░░░░░░░║░░░░░░░░░░░░░░░░░░░░░░░║
  261.   ║░░░░░░                     ░░░░░░░░╠═══════════════════════╝
  262.   ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  263.   ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  264.   ╚═══════════════════════════════════╝                 
  265.  
  266. The screen formats in the manual are like on a monochrome monitor.
  267.  
  268.  
  269. 5 A simple sample
  270. -----------------
  271.  
  272. Mr. Adam plans to administrate his goods received in a little data base. 
  273. Mr. Adam has visited a short traning in the C program language  and 
  274. intends to implement the program with the MS Quick C compiler.
  275.  
  276. As a proud owner of the universal formatting system C-WINDOW Mr. Adam 
  277. would like to have a screen format in the program ...
  278.  
  279. Format generation 
  280.  
  281. After invoking UNIFORM.EXE Mr. Adam comes into the menu "main menu". He 
  282. takes function key F8 and comes to the menu "options". There he defines
  283.  
  284.   - path                                c:\adam
  285.   - compiler                            MS Quick C
  286.   - field specifications
  287.         for input field alphanumeric    !
  288.         for input field numeric         "
  289.         for output field alphanumeric   
  290.         for output field numeric        $
  291.         for selectable field            %
  292.   - standard attributes
  293.         for input field alphanumeric    bright white on black
  294.         for input field numeric         bright white on black
  295.         for output field alphanumeric   white on black
  296.         for output field numeric        white on black
  297.         for selectable field            white on black
  298.   - Standard attributes
  299.         for text                        black on white
  300.         for frame                       black on white
  301.  
  302. After saving the options with F1 he returns to menu "main menu" by F8.
  303.  
  304. The format name and format size he defines with ORDER, line 3 to 18 and 
  305. column 5 to 70.
  306.  
  307. After F1 Mr. Adam comes to menu "format layout". There is an empty 
  308. screen with the choosen attributes for text and frame. He forms the 
  309. screen layout with the key input and key functions like making vertical 
  310. or horizontal lines, delete lines or columns or put on/off the frame 
  311. around the picture. The variable fields he defines by the field 
  312. specifications. Because Mr. Adam is not an experienced operator of 
  313. UniForm sometimes he takes function key F9 to see the functional 
  314. overview and the edit functions.
  315.  
  316. Finally Mr. Adam saves the screen layout with F1 and comes into menu 
  317. "field names/ attributes". Mr. Adam can modify the automatically defined 
  318. field names and attributes of the variable fields. The first field gets 
  319. the field name "product" and the attributes green on reed. He saves the 
  320. field attribute with function key F2. The remaining variable fields get 
  321. the field names "orderdate", "nr", "quantity" and "price" and the colour 
  322. attributes white on red. After a check (F3 and F4) Mr. Adam is 
  323. satisfied. He saves the screen format with function key F1.
  324.  
  325. Mr. Adam comes back into menu "main menu". Now he can define new formats 
  326. or use one of the format managemant functions like show formats, change 
  327. formats, print formats, copy formats or look for a table of contents.
  328.  
  329. Mr. Adam looks for the generated source example (function key ALT F3) 
  330. and is surprised because of just a view lines of code. He omits for 
  331. further functions and finishes the dialog with the UniForm format 
  332. generator. 
  333.  
  334. In the defined directory he can find the generated format file 
  335. (ORDER.BLD), the variables definition file (ORDER.H) and the layout 
  336. file (ORDER.I) in the syntax of MS Quick C
  337.  
  338. Format application
  339.  
  340. Mr. Adam edits the program source. The source example is a great 
  341. help for him.
  342.  
  343. #include "_UFC01.H"
  344. #include "order.H"
  345. main()
  346. { FKZ=2;
  347.   SM=0;
  348.   memcpy(FMT,"order ",8);
  349.   while(RET != 110)
  350.   { #include "order.i"
  351.     UNIF(&FKZ,FMT,order.&order.product,&RET,&SM,Daten);
  352.     DB-PROCESSING
  353.     FKZ=3;
  354. } }
  355.  
  356. Following he compiles the program with the standard include file 
  357. _UFC01.H and the include files ORDER.H and ORDER.I. The program 
  358. "ORDER.EXE" will be generated.
  359.  
  360. Mr. Adam calls the program ORDER.
  361.  
  362.    ╔══════════════════════════════════════════════════════════╗
  363.    ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  364.    ║░░░░░░░░░░░░░░░░ o r d e r ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  365.    ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  366.    ║──────────────────────────────────────────────────────────║
  367.    ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  368.    ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  369.    ║░░░░ articel              ░░░░░ PC TYP 123456-789 ░░░░░░░░║
  370.    ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  371.    ║░░░░ date                 ░░░░░░░░░░░░░░ 10 02 89 ░░░░░░░░║
  372.    ║░░░░ nr                   ░░░░░    BST-3443344443 ░░░░░░░░║
  373.    ║░░░░ quantity             ░░░░░░░░░░░░░░        2 ░░░░░░░░║
  374.    ║░░░░ price                ░░░░░░░░░░░░░░  9123 38 ░░░░░░░░║
  375.    ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  376.    ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  377.    ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  378.    ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  379.    ║ ENTER save         ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  380.    ║ ESC   ignore       ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  381.    ║ F10   program end  ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  382.    ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  383.    ╚══════════════════════════════════════════════════════════╝
  384.  
  385. The first time Mr. Adam made a program within a screen format!
  386.  
  387. 6 Line up
  388. ---------
  389.  
  390. 6.1 System requirements 
  391.  
  392. The minimal configuration is ...
  393.  
  394.  - IBM personal computer or 100 % compatible
  395.  - 1 disc drive
  396.  - MS-DOS, PC-DOS release 2.1 und higher or DR-DOS
  397.  - C-WINDOW supports all the screen modes and all usual printers
  398.  
  399.  
  400. 6.2 Disc contents
  401.  
  402. components for format generator
  403.   UNIFORM.EXE    format generator program
  404.   UNIFORM.CFG    configuration file
  405.  
  406. components for MS C, MS Quick C
  407.   UFC01S.OBJ     interface module - model small
  408.   _UFC01.H       standard include file
  409.   UFC013.C       source example "order"
  410.   UFC014.C       source example "easy"
  411.   UFC015.C       source example "dynamic"
  412.  
  413. components for Turbo C
  414.   UFC02S.OBJ     interface module - model small
  415.   _UFC02.H       standard include file
  416.   UFC023.C       source example "order"
  417.   UFC024.C       source example "easy"
  418.   UFC025.C       source example "dynamic"
  419.  
  420. components for Lattice C
  421.   UFC03S.OBJ     interface module - model small
  422.   _UFC03.H       standard include file
  423.   UFC033.C       source example "order"
  424.   UFC034.C       source example "easy"
  425.   UFC035.C       source example "dynamic"
  426.  
  427. for source examples
  428.   ORDER.BLD      Format file "order"
  429.   MESSAGE.BLD    Format file "message"
  430.   TESTFMT.BLD    Format file "testfmt"
  431.  
  432. others
  433.   REGIST.FOR     register form
  434.   HELP.TXT       documentation (this file)
  435.  
  436.  
  437. 6.3 Software installation
  438.  
  439. You can invoke the UniForm format generator form any directory on hard 
  440. disc or floppy disc. We recommend to install the directory uniform (MD 
  441. \uniform). Copy the files UNIFORM.EXE and UNIFORM.CFG into that 
  442. directory. 
  443.  
  444. The components of C-WINDOW you copy into the C  directory.
  445.  
  446.  
  447. 7 Format generation with UniForm
  448. --------------------------------
  449.  
  450. The format generation in UniForm is realized in an interactive mode. In 
  451. every processing step there is a functional overview you can see by 
  452. function key F9.
  453.  
  454.  
  455. 7.1 Run mode
  456.  
  457.   -  Invoke format generator 
  458.   -  Adapt options
  459.   -  Define format name and format size
  460.   -  Edit format layout
  461.   -  Define field names and attributes for variable fields
  462.   -  Start format management functions (option)
  463.  
  464.  
  465. 7.1.1 Invoke format generator
  466.  
  467. UniForm always is to call from the installation directory. The 
  468. configuration file UNIFORM.CFG must be in the same directory.
  469.  
  470. We reccommend directory \UNIFORM.
  471.  
  472. call:  CD \UNIFORM
  473.        UNIFORM
  474.  
  475.  
  476. 7.1.2 Adapt options
  477.  
  478. With function key F8 you come to menu "options". In that processing step 
  479. you modify the actual parameters and save it with F1. With F8 you return 
  480. to menu "main menu". The configuration file UNIFORM.CFG will be updated 
  481. with your change order.
  482.  
  483. Options:            
  484.   path
  485.   compiler
  486.   printer
  487.  
  488.   field specification for alphanumeric input fields
  489.   field specification for numeric input fields
  490.   field specification for alphanumeric output fields
  491.   field specification for numeric output fields
  492.   field specification for selectable fields
  493.  
  494.   standard attributes for alphanumeric input fields
  495.   standard attributes for numeric input fields
  496.   standard attributes for alphanumeric output fields
  497.   standard attributes for numeric output fields
  498.   standard attributes for selectable fields
  499.  
  500.   standard attributes for text
  501.   standard attributes for frame
  502.   standard attributes for shadow
  503.  
  504. For more information see 7.2.2.
  505.  
  506.  
  507. 7.1.3 Define format name and format size
  508.  
  509. In the menu "main menu" you define the format name and save it with F1. 
  510. If the format name is syntactical ok you have to define the format size. 
  511. Save it with F1, too.
  512.  
  513. For more information see 7.2.1.
  514.  
  515.  
  516. 7.1.4 Edit format layout
  517.  
  518. In menu "format layout" you form the layout of the format, inside the 
  519. defined borders. The variable fields you define with the appropriate 
  520. field specification signs.
  521.  
  522. For more information see 7.2.3.
  523.  
  524.  
  525. 7.1.5 Define field names and attributes
  526.  
  527. In menu "field names/ attributes" you modify the field names and 
  528. attributes of the defined variable fields. If there is an empty format 
  529. (no variable field) that program step is not necessary.
  530.  
  531. For more information see 7.2.4.
  532.  
  533.  
  534. 7.1.6 Format management
  535.  
  536. Besides the function "new format" (F1) in menu "main menu" there are 
  537. some more functions for format management. Take them whenever you want 
  538. to.
  539.  
  540.  Format change and new attributes
  541.  Format change and old attributes
  542.  Format show
  543.  Source code show
  544.  Format print
  545.  Source code print
  546.  Format copy
  547.  Format delete
  548.  Format contents
  549.  
  550. For more information see 7.2.1 to 7.2.7.
  551.  
  552.  
  553. 7.2 Functional overview
  554.  
  555. 7.2.1 Main menu
  556.  
  557. In menu "main menu" you take the function for format generation or 
  558. format management. You have to define the format name and the format 
  559. size.
  560.  
  561.  
  562. F1  Format new
  563.  
  564. Creates a new screen format.
  565.  
  566. The format name can be 8 bytes long. See for DOS conventions for file names.
  567.  
  568. For the format size the following parameters are allowed.
  569. start line       0 to 22
  570. end line         2 to 24
  571. start column     0 to 77
  572. end column       2 to 79
  573.  
  574. F2  Format change and new attributes
  575.  
  576. Changing an existing format in the option directory. The attributes for 
  577. text, frame and shadow in menu "options" are taken.
  578.  
  579. ALT F2  Format change and old attributes
  580.  
  581. Changing an existing format in the option directory. The attributes for 
  582. text, frame and shadow in menu "options" are ignored.
  583.  
  584. F3  Format show
  585.  
  586. Display menu "format show".
  587.  
  588. Shows the layout of an existing format in the option directory.
  589.  
  590. ALT F3  Source code show
  591.  
  592. Display menu "source code show"
  593.  
  594. Shows a simple source sample in the syntax of the respective compiler. The source sample is generated in the file <format>.SMP.
  595.  
  596. F4  Format print  
  597.  
  598. Printing an existing format in the option directory.
  599.  
  600. The created print file has the name <format>.PRN. The output device you 
  601. define in menu "options" (see 7.2.2).
  602.  
  603. Logfile contents
  604.   format name
  605.   format directory 
  606.   column ruler 
  607.   format layout
  608.   text area with field attributes
  609.   frame area with field attributes
  610.   variable fields with
  611.     field name
  612.     field size
  613.     field attributes
  614.     field length
  615.     field type
  616.     number of decimal digits
  617.  
  618. F5  Format delete 
  619.  
  620. Deletes an existing format in the option directory.
  621.  
  622. You have to acknowledge with F7.
  623.  
  624. The following files will be deleted
  625.   format file <format>.BLD
  626.   variable fields file <format>.xxx (depending from compiler)
  627.   layout file <format>.xxx (depending from compiler)
  628.   print file <format>.PRN
  629.  
  630. F6  Format copy
  631.  
  632. Copies an existing format in the option directory. See for DOS 
  633. conventions for file names.
  634.  
  635. F7  Format contents
  636.  
  637. Displays menu "format contents".
  638.  
  639. Shows you all the existing formats in the actual option directory. 
  640.  
  641. F8  Options
  642.  
  643. Displays menu "options".
  644.  
  645. F9  Menu on/off
  646.  
  647. Blank in/out the functional overview for menu "main menu".
  648.  
  649. F10  Program end
  650.  
  651. Stop UNIFORM.EXE. Return to DOS.
  652.  
  653.  
  654. 7.2.2 Adapt options
  655.  
  656. In menu "options" you define all parameters for the UniForm format 
  657. generator.
  658.  
  659. In the following all the parameters are described.
  660.  
  661. path
  662.  
  663. Defines the option directory. All the format files, variables definition 
  664. files, layout files and print files will be created in that directory. 
  665. The input have to be an absolute path.
  666.  
  667. compiler
  668.  
  669. All the following compiler are supported.
  670.  
  671.     MS C
  672.     MS Quick C
  673.     Turbo C
  674.     Lattice C
  675.  
  676. printer
  677.  
  678. Defines the printer interface for the functions "format print" and 
  679. "source code print".
  680.  
  681.     LPT1    1. parallele printer interface 
  682.     LPT2    2. parallele printer interface 
  683.     LPT3    3. parallele printer interface 
  684.     COM1    1. serial  printer interface 
  685.     COM2    2. serial  printer interface 
  686.     COM3    3. serial  printer interface 
  687.  
  688. input field alphanumeric
  689.  
  690. Field specification, foreground and background attributes for 
  691. alphanumeric input fields. In a monochrome mode only the foreground 
  692. attribute is necessary.
  693.  
  694. input field numeric
  695.  
  696. Field specification, foreground and background attributes for numeric 
  697. input fields. In a monochrome mode only the foreground attribute is 
  698. neccesary.
  699.  
  700. output field alphanumeric
  701.  
  702. Field specification, foreground and background attributes for 
  703. alphanumeric output fields. In a monochrome mode only the foreground 
  704. attribute is necessary.
  705.  
  706. output field numeric
  707.  
  708. Field specification, foreground and background attributes for numeric 
  709. output fields. In a monochrome mode only the foreground attribute is 
  710. necessary.
  711.  
  712. selectable field
  713.  
  714. Field specification, foreground and background attributes for selectable 
  715. fields. In a monochrome mode only the foreground attribute is necessary.
  716.  
  717. text area
  718.  
  719. Foreground and background attributes for text area. In a monochrome mode 
  720. only the foreground attribute is necessary.
  721.  
  722. frame area
  723.  
  724. Foreground and background attributes for frame area. In a monochrome 
  725. mode only the foreground attribute is necessary.
  726.  
  727. shadow area
  728.  
  729. Foreground and background attributes for shadow area. In a monochrome 
  730. mode only the foreground attribute is neccessary.
  731.  
  732. The following attributes for text, frame, shadow and variable fields are 
  733. available.
  734.  
  735.   monochrome attributes
  736.     invisible
  737.     underlined
  738.     normal
  739.     bright, underlined
  740.     bright
  741.     invers
  742.     blinking, underlined
  743.     blinking
  744.     blinking, bright, underlined
  745.     blinking, invers
  746.  
  747.   colour attributes
  748.     black
  749.     blue
  750.     green
  751.     cobalt blue
  752.     red
  753.     violet
  754.     brown
  755.     white
  756.     grey
  757.     bright blue
  758.     bright green
  759.     bright cobalt blue
  760.     bright red
  761.     bright violet
  762.     yellow
  763.     bright white
  764.  
  765. For the text area in the monochrome mode only the attributes "normal" or 
  766. "invers" are allowed.
  767.  
  768.  
  769. F1  Save options     
  770.  
  771. Saving the actual screen options.
  772.  
  773. The configuration file UNIFORM.CFG will be updated.
  774.  
  775. F8  Main menu
  776.  
  777. Return to menu "main menu".
  778.  
  779. There is no backup of the options in the configuration file UNIFORM.CFG.
  780.  
  781. F9  Menu on/off
  782.  
  783. Blank in/out the functional overview for menu "options".
  784.  
  785. F10  Program end
  786.  
  787. Stop UNIFORM.EXE. Return to DOS.
  788.  
  789.  
  790. 7.2.3 Format layout
  791.  
  792. In menü "format layout" you edit the format layout with the normal 
  793. cursor functions and special edit functions. Mouse support is realized, 
  794. too.
  795.  
  796. A format composes of text and field specifications for the variable 
  797. fields (option).
  798.  
  799. text area
  800.  
  801. Text can be all signs of the ASCII-code (ALT 0 bis ALT 255) without the 
  802. actually defined specifications for the variable fields.
  803.  
  804. variable fields
  805.  
  806. You define variable fields with the appropriate field specifications. 
  807. You can modify the field specifications in menu "options". There is a 
  808. maximum in field length for every type of a variable field.
  809.  
  810. input field alphanumeric
  811.  
  812. Alphanumeric input fields can be provided by the program and the 
  813. keyboard. All the signs of the ASCII-code are permitted.
  814.  
  815.      generation
  816.         standard field specification:   !
  817.         lenght 80 signs in maximum
  818.  
  819.      examples
  820.          !                 1 byte alphanumeric field
  821.          !!!!!             5 byte alphanumeric field
  822.          !!!!!!!!!!       10 byte alphanumeric field
  823.  
  824. input field numeric
  825.  
  826. Numeric input fields can be provided by the program and the keyboard. 
  827. All digits and - (minus) are permitted.
  828.  
  829.      generation
  830.         standard field specification:   "
  831.         lenght 16 signs in maximum for integers
  832.         lenght 17 signs in maximum for floats (with decimal point)
  833.  
  834.      examples
  835.          "                  1 byte numeric field
  836.          """""              5 byte numeric field
  837.          """"""""""""""""  16 byte numeric field
  838.          ". "               3 byte numeric field, 1 decimal number
  839.          """""."""""       11 byte numeric field, 5 decimal numbers
  840.          ""."""""""""      12 byte numeric field, 9 decimal numbers
  841.  
  842. output field alphanumeric
  843.  
  844. Alphanumeric output fields can be provided only by the program. All the 
  845. signs of the ASCII-code are permitted.
  846.  
  847.      generation
  848.         standard field specification:   
  849.         lenght 80 signs in maximum
  850.  
  851.      examples
  852.                            1 byte alphanumeric field
  853.                        5 byte alphanumeric field
  854.                  10 byte alphanumeric field
  855.  
  856. output field numeric
  857.  
  858. Numeric output fields can be provided only by the program. All digits 
  859. and - (minus) are permitted.
  860.  
  861.      generation
  862.         standard field specification:   $
  863.         lenght 16 signs in maximum for integers
  864.         lenght 17 signs in maximum for floats (with decimal point)
  865.  
  866.      examples
  867.          $                  1 byte numeric field
  868.          $$$$$              5 byte numeric field
  869.          $$$$$$$$$$        10 byte numeric field
  870.          $.$                3 byte numeric field, 1 decimal number
  871.          $$.$$$$$           8 byte numeric field, 5 decimal numbers
  872.          $$$$$$$$$.$$      11 byte numeric field, 2 decimal numbers
  873.  
  874. selectable field
  875.  
  876. Selectable fields can be provided only by the program. All the signs of 
  877. the ASCII-code are permitted. 
  878.  
  879. With selectable fields pull-downs or pop-ups can be realized. They have 
  880. the text attribute, only when there is the cursor (or mouse) at this 
  881. field, it will have the generated field attribute.
  882.  
  883.      generation
  884.         standard field specification:   %
  885.         lenght 80 signs in maximum
  886.  
  887.      examples
  888.          %                  1 byte selectable field
  889.          %%%%%              5 byte selectable field
  890.          %%%%%%             6 byte selectable field
  891.  
  892. You can see the functional overview and all the edit functions by 
  893. function key F9.
  894.  
  895.  
  896. F1  Layout save
  897.  
  898. Saves the format layout.
  899.  
  900. A format composes of text and field specifications for variable fields. 
  901. If there is an empty format (no variable field) you will return to menu 
  902. "main menu." If there is a format within variable fields you will come 
  903. to menu "field names/ attributes".
  904.  
  905. F2  Show format size
  906.  
  907. Shows you the format name and format size for the actual screen format.
  908.  
  909. F3  Show cursor position
  910.  
  911. Shows you the actual cursor position.
  912.  
  913. F8  Main menu
  914.  
  915. Returns to menu "main menu" without saving the format.
  916.  
  917. F9  Menu on/off
  918.  
  919. Blank in/out the functional overview for menu "format layout".
  920.  
  921. F10  Program end
  922.  
  923. Stop UNIFORM.EXE. Return to DOS.
  924.  
  925.  
  926. Edit functions
  927.  
  928. Besides the described functions you can use a lot of edit 
  929. functions. You get an overview with function key F9.
  930.  
  931.  
  932. ALT A  Delete picture
  933.  
  934. Deletes all the characters by SPACE. A frame retains. You have to 
  935. acknowledge that function by F2.
  936.  
  937. ALT B  Delete picture from cursor
  938.  
  939. Deletes in the rectangle after the actual cursor position all the 
  940. characters by SPACE. A frame retains. You have to acknowledge that 
  941. function by F2.
  942.  
  943. ALT C  Delete picture to cursor
  944.  
  945. Deletes in the rectangle before the actual cursor position all the 
  946. characters by SPACE. A frame retains. You have to acknowledge that 
  947. function by F2.
  948.  
  949. ALT D  Delete line
  950.  
  951. Deletes the whole line by SPACE. A frame in this line retains.
  952.  
  953. ALT E  Delete line from cursor
  954.  
  955. Deletes the line after the actual cursor position by SPACE. A 
  956. right frame in this line retains.
  957.  
  958. ALT F  Delete line to cursor
  959.  
  960. Deletes the line before the actual cursor position by SPACE. A 
  961. left frame in this line retains.
  962.  
  963. ALT G  Copy line
  964.  
  965. Copies the actual line into the next line.
  966.  
  967. ALT H  Insert line
  968.  
  969. Inserts a line (SPACE) after the actual line. All the following 
  970. lines will be moved down. The last line is lost.
  971.  
  972. ALT I  Outsert line
  973.  
  974. Outserts the actual line. All the following lines will be moved 
  975. up. The last line is moved by SPACE.
  976.  
  977. ALT J  Delete column
  978.  
  979. Deletes the actual column. A frame in this column retains.
  980.  
  981. ALT K  Delete column from cursor
  982.  
  983. Deletes the actual column after the actual cursor position. A 
  984. bottom frame in this column retains.
  985.  
  986. ALT L  Delete column to cursor
  987.  
  988. Deletes the actual column before the actual cursor position. A top 
  989. frame in this column retains.
  990.  
  991. ALT M  Copy column
  992.  
  993. Copies the actual column into the next column.
  994.  
  995. ALT N  Insert column
  996.  
  997. Inserts a column (SPACE) after the actual cursor position. All the 
  998. following columns will be moved right. The last column is lost.
  999.  
  1000. ALT O  Outsert column
  1001.  
  1002. Outserts the actual column. All the following columns will be 
  1003. moved left. The last column is moved by SPACE.
  1004.  
  1005. ALT P  Horizontal Line
  1006.  
  1007. Moves the actual line sign into the actual line. A frame retains.
  1008.  
  1009. ALT Q  Horizontal line from cursor
  1010.  
  1011. Move after the actual cursor position the actual line sign into 
  1012. the actual line. A right frame retains.
  1013.  
  1014. ALT R  Horizontal line to cursor
  1015.  
  1016. Moves before the actual cursor position the actual line sign into 
  1017. the actual line. A left frame retains.
  1018.  
  1019. ALT S  Vertical line
  1020.  
  1021. Moves the actual line sign into the actual column. A frame retains.
  1022.  
  1023. ALT T  Vertical line from cursor
  1024.  
  1025. Move after the actual cursor position the actual line sign into 
  1026. the actual column. A bottom frame retains.
  1027.  
  1028. ALT U  Vertical line to cursor
  1029.  
  1030. Moves before the actual cursor position the actual line sign into 
  1031. the actual column. A top frame retains.
  1032.  
  1033. ALT V  Frame on/off
  1034.  
  1035. Makes a frame around the picture or deletes it. The function 
  1036. "on/off" depends of the signs "┌" (single line) or "╔" (double 
  1037. line) at position <start line/<end line>.
  1038.  
  1039. ALT W  Shadow on/off
  1040.  
  1041. Makes a shadow at th right side and the bottom of the format or 
  1042. deletes it.
  1043.  
  1044. ALT X  Single/ double lines
  1045.  
  1046. Defines the actual line sign (single or double line). You can see 
  1047. the actual line sign in menu "edit functions".
  1048.  
  1049. ALT YZ  Make rectangle
  1050.  
  1051. Makes a rectangle in the actual line sign. Put the cursor into the 
  1052. first coordinate and acknowledge with ALT Y. Then put the cursor 
  1053. into the second coordinate and acknowledge with ALT Z.
  1054.  
  1055.  
  1056. 7.2.4 Field names/ attributes
  1057.  
  1058. In menu "field names/ attributes" you can modify the field names 
  1059. and attributes of the variable fields.
  1060.  
  1061. The function is an optional one. UniForm generates default field 
  1062. names and attributes. Youe can modify them, if you want to.
  1063.  
  1064. default field name
  1065.   fld# (# is the field number beginning with 0).
  1066.  
  1067. default attibutes in a monochrome display
  1068.   input field alphanumeric    - bright  
  1069.   output field alphanumeric   - normal  
  1070.   input field numeric         - bright  
  1071.   output field numeric        - normal  
  1072.   selectable field            - normal   
  1073.  
  1074. default attributes in a colour display
  1075.   input field alphanumeric    - bright white on black   
  1076.   output field alphanumeric   - bright white on black
  1077.   input field numeric         - bright white on black   
  1078.   output field numeric        - bright white on black
  1079.   selectable field            - bright white on black
  1080.  
  1081. The maximal length for a field name is 15 characters. All the 
  1082. alphanumeric signs, - (minus) and _ (underline) are permitted. 
  1083. Please consider restrictions of the appropriate compiler.
  1084.  
  1085. Dependig of the video mode you can modify the field attributes 
  1086. like the text and frame attributes.
  1087.  
  1088.  
  1089. F1  Format save   
  1090.  
  1091. Saves the actual format and returns to menu "main menu".
  1092.  
  1093. Creates the format file format.BLD, the variables definition file 
  1094. and the layout file (depending of the compiler) in 
  1095. the option directory. Updates the table of contents (UNIFORM.INH). 
  1096. If the format is the first one in the option directory UNIFORM.INH 
  1097. will be installed.
  1098.  
  1099. F2  Field save
  1100.  
  1101. Saves the field name and attributes for the actual variable field 
  1102. (marked by *) and goes to the next field.
  1103.  
  1104. F3  Next field
  1105.  
  1106. Goes to next field.
  1107.  
  1108. F4  Previous field 
  1109.  
  1110. Goes to previous field.
  1111.  
  1112. F5  Standard attributes all fields
  1113.  
  1114. Moves the standard attributes for all fields depending of the 
  1115. field specification.
  1116.  
  1117. F6  Standard attributes actual fields    
  1118.  
  1119. Moves the standard attributes for the actual field depending of 
  1120. the field specification.
  1121.  
  1122. F8  Main menu
  1123.  
  1124. Return to menu "main menu" without saving the format.
  1125.  
  1126. F9  Menu on/off
  1127.  
  1128. Blank in/out the functional overview for menu "field names/ 
  1129. attributes".
  1130.  
  1131. F10  Program end
  1132.  
  1133. Stop UNIFORM.EXE. Return to DOS.
  1134.  
  1135.  
  1136. 7.2.5 Show format
  1137.  
  1138. Im menu "show format" a screen format is shown with the text, 
  1139. frame, shadow and field attributes.
  1140.  
  1141.  
  1142. F1  Show field significants/ layout
  1143.  
  1144. Shows alternate the format layout or the field names and 
  1145. attributes of the actually selected field.
  1146.  
  1147. F3  Next field
  1148.  
  1149. Goes to next field.
  1150.  
  1151. F4  Previous fueld 
  1152.  
  1153. Goes to previous field.
  1154.  
  1155. F8  Main menu
  1156.  
  1157. Return to menu "main menu".
  1158.  
  1159. F9  Menu on/off
  1160.  
  1161. Blank in/out the functional overview for menu "show format".
  1162.  
  1163. F10  Program end
  1164.  
  1165. Stop UNIFORM.EXE. Return to DOS.
  1166.  
  1167.  
  1168. 7.2.6 Show source code
  1169.  
  1170. In menu "show source code" an easy source sample in the syntax of 
  1171. the compiler you have generated a format will be 
  1172. displayed. If you want to have a source example in a different 
  1173. compiler you have to generate the format for this compiler, again.
  1174.  
  1175. UniForm moves the source sample into the file <format>.SMP.
  1176.  
  1177. The only function in the easy source sample is to display the 
  1178. format onto the monitor. You have to compile and link the example 
  1179. and start the program in the normal way.
  1180.  
  1181.  
  1182. F8  Main menu
  1183.  
  1184. Return to menu "main menu".
  1185.  
  1186. F9  Menu on/off
  1187.  
  1188. Blank in/out the functional overview for menu "show source code".
  1189.  
  1190. F10  Program end
  1191.  
  1192. Stop UNIFORM.EXE. Return to DOS.
  1193.  
  1194.  
  1195. 7.2.7  Format contents
  1196.  
  1197. In menu "format contents" a table of all existing formats in the 
  1198. option directory is shown. In every option directory there is 
  1199. a file UNIFORM.INH.
  1200.  
  1201.  
  1202. F8  Main menu
  1203.  
  1204. Return to menu "main menu".
  1205.  
  1206. F9  Menu on/off
  1207.  
  1208. Blank in/out the functional overview for menu "format contents".
  1209.  
  1210. F10  Program end
  1211.  
  1212. Stop UNIFORM.EXE. Return to DOS.
  1213.  
  1214.  
  1215. 8 Format application with C-WINDOW
  1216. --------------------------------------
  1217.  
  1218. The display of a screen format with C-WINDOW you have created with 
  1219. UniForm is realized in just one subroutine call (subroutine UNIF). 
  1220. The subroutine is written in a quick assembler coding. As a result the run 
  1221. time is extremely short. All the functions which are necessary for a complete 
  1222. formatting system are implemented in this subroutine. It is output formatting, 
  1223. display output, cursor adressing, mouse adressing, input formatting and 
  1224. the return of the pressed function key code.
  1225.  
  1226. All the files which are necessary are generated by UniForm. You have to 
  1227. integrate that include files into your program source.
  1228.  
  1229. 8.1 Run mode
  1230.  
  1231. You have to put the include files into your program source, then to 
  1232. provide the subroutine parameters and to call the universal subroutine 
  1233. UNIF. Further you have to compile and link the program with the 
  1234. respective interface module.
  1235.  
  1236.  
  1237. 8.1.1 Source file
  1238.  
  1239.   -  include standard include file 
  1240.  
  1241.   -  include variables definition file
  1242.  
  1243.   -  include layout file
  1244.  
  1245.   -  supply subroutine parameters
  1246.  
  1247.   -  call subroutine UNIF
  1248.  
  1249.   -  analyse return code 
  1250.  
  1251.  
  1252. 8.1.1.1 Standard include file
  1253.  
  1254. There is a standard include file for every C compiler. It 
  1255. contains of the definitions for subroutine parameters and the subroutine 
  1256. by itself (if it's necessary).
  1257.  
  1258. For more information see 8.2.
  1259.  
  1260.  
  1261. 8.1.1.2 Variables definition file
  1262.  
  1263. The variables definition file contains the definitions of all variable 
  1264. fields of a format in syntax of the appropriate compiler. 
  1265. UniForm creates this file whenever you define a format with the format 
  1266. generator (when there is at least one variable field).
  1267.  
  1268. For more information see 8.2.
  1269.  
  1270.  
  1271. 8.1.1.3 Layout file
  1272.  
  1273. The layout file contains the format layout of a screen format. UniForm 
  1274. creates this file whenever you define a format.
  1275.  
  1276. To include the layout file into the program source is optional. All the 
  1277. format files <format>.BLD have to be in the run directory when you 
  1278. haven't an include for the layout file in the program source. The format 
  1279. layout is read form the format files <format>.BLD then.
  1280.  
  1281. For more information see 8.1.3.
  1282.  
  1283.  
  1284. 8.1.1.4 Parameters for subroutine
  1285.  
  1286. Before you call the subroutine you have to supply the parameters in the 
  1287. following order.
  1288.  
  1289. function identifier     FKZ
  1290. format name             FMT
  1291. field name              1. variable field
  1292. return feld             RET
  1293. cursor position         SM
  1294. format layout           Daten
  1295.  
  1296. function identifier FKZ
  1297.  
  1298. You tell UNIF the function which is to do. The field FKZ is defined in 
  1299. the standard include file as a two byte integer field.
  1300.  
  1301.       0      save actual screen
  1302.              return to the calling program
  1303.  
  1304.       1      clear screen
  1305.              display format layout
  1306.              display variable fields
  1307.              wait for input
  1308.              return to the calling program after ENTER/ ESC/ f-key
  1309.  
  1310.       2      display format layout
  1311.              display variable fields
  1312.              wait for input
  1313.              return to the calling program after ENTER/ ESC/ f-key
  1314.  
  1315.       3      display variable fields
  1316.              wait for input
  1317.              return to the calling program after ENTER/ ESC/ f-key
  1318.  
  1319.       4      display format layout of an empty format
  1320.              wait for input
  1321.              return to the calling program after ENTER/ ESC/ f-key
  1322.  
  1323.       5      display saved screen
  1324.  
  1325.       6      display format layout
  1326.              display variable fields
  1327.              return to the calling program
  1328.  
  1329.       7      display variable fields
  1330.              return to the calling program
  1331.  
  1332.     11       display format layout to LPT1
  1333.              display variable fields to LPT1
  1334.              return to the calling program
  1335.  
  1336.     12       display format layout to LPT2
  1337.              display variable fields to LPT2
  1338.              return to the calling program
  1339.  
  1340.     13       display format layout to LPT3
  1341.              display variable fields to LPT3
  1342.              return to the calling program
  1343.  
  1344.     14       display format layout to COM3
  1345.              display variable fields to COM3
  1346.              return to the calling program
  1347.  
  1348.     15       display format layout to COM3
  1349.              display variable fields to COM3
  1350.              return to the calling program
  1351.  
  1352.     16       display format layout to COM3
  1353.              display variable fields to COM3
  1354.              return to the calling program
  1355.  
  1356.  
  1357.     20       dynamic modification of a field attribute
  1358.              return to calling program
  1359.  
  1360.     21       dynamic modification of the text attribute
  1361.              return to calling program
  1362.  
  1363.     22       dynamic modification of the frame attribute
  1364.              return to calling program
  1365.  
  1366.  
  1367. When you take function 11 to 16, print control characters in a format 
  1368. are possible.
  1369.  
  1370.     examples (for usual 9 needle printers)
  1371.   
  1372.       ALT 14   wide print for 1 line on  
  1373.       ALT 20   wide print for 1 line off 
  1374.       ALT 15   compound print for 1 line on
  1375.       ALT 18   compound print for 1 line off
  1376.       ALT 10   line feed
  1377.       ALT 13   carriage return 
  1378.  
  1379.  
  1380. If you want to change text-, frame, or field attributes (functions 
  1381. 20 to 22) the new attribute you have to provide in the parameter RET. 
  1382. The field number (function 20) you have to provide in the parameter SM 
  1383. (start with 0).
  1384.  
  1385.     example (attributes "red on white" for 5. variable field)
  1386.  
  1387.       FKZ = 20     FKZ for dynamic change of field attribute
  1388.       SM = 4       5. variable field
  1389.       RET = 244    code for "red on white"
  1390.  
  1391.     example (attributes "black on green" for Text area)
  1392.  
  1393.       FKZ = 21     FKZ for dynamic change of text area
  1394.       RET = 32     code for "black on green"
  1395.  
  1396.     example (attributes "blue on red" for frame area)
  1397.  
  1398.       FKZ = 22     FKZ for dynamic change frame area
  1399.       RET = 65     code for "blue on red"
  1400.  
  1401. You can use the dynamic attribute modification only when you put the 
  1402. layout include file into your source file. All the possible attributes 
  1403. for the monochrome and colour mode you can find in appendix A3.
  1404.  
  1405. format name FMT
  1406.  
  1407. You tell UNIF the format name with the parameter FMT. The field FMT is 
  1408. defined in the standard include file as an eight byte character field. 
  1409. It must be justied right and paded by SPACE.
  1410.  
  1411. field name of the first variable field
  1412.  
  1413. You tell UNIF the first variable field with that parameter. If you take 
  1414. function 0, 4 or 5 you can take any variable field.
  1415.  
  1416. Return field RET
  1417.  
  1418. You get back the pushed botton selection or an error information in the 
  1419. parameter RET. The field RET is defined in the standard include file as 
  1420. a two byte integer field.
  1421.  
  1422. Cursor position SM
  1423.  
  1424. You tell UNIF the cursor position or get back it with the parameter SM. 
  1425. The field SM is defined in the standard include file as a two byte integer 
  1426. field. 
  1427.  
  1428. Put the number of the variable field into SM. Only unprotected fields 
  1429. (input fields and selectable fields) you have to count (start with 0). 
  1430. It's not possiple to adress the cursor to an output field.
  1431.  
  1432.     example (cursor to 1. input/selectable field)
  1433.  
  1434.       SM = 0
  1435.  
  1436.     example (cursor to 5. input/selectable field)
  1437.  
  1438.       SM = 4
  1439.  
  1440. Further the parameter SM is used to tell the field number to UNIF when 
  1441. function 20 (change attribute of an variable field) is used. 
  1442. In this case you have to count all variable fields.
  1443.  
  1444. Field Daten (format layout)
  1445.  
  1446. You tell UNIF the format layout with the parameter Daten. The field 
  1447. Daten is defined in the standard include file as a four kilobyte 
  1448. character field. Uniform creates an include file to provide that field. 
  1449. You are not allowed to modify it!
  1450.  
  1451.  
  1452. 8.1.1.5 Call subroutine UNIF
  1453.  
  1454. You have to call the subroutine UNIF in the syntax of the C compiler you use.
  1455.  
  1456. For more information see 8.2.
  1457.  
  1458.  
  1459. 8.1.1.6 Analyse return field
  1460.  
  1461. In the parameter RET there is the pushed botton selection after calling 
  1462. the subroutine UNIF. If there was an error there will be an error 
  1463. number.
  1464.  
  1465. - key assignment  
  1466.  
  1467. ESC           99                 ENTER         100
  1468. F1            101                SH - F1       111
  1469. F2            102                SH - F2       112
  1470. F3            103                SH - F3       113
  1471. F4            104                SH - F4       114
  1472. F5            105                SH - F5       115
  1473. F6            106                SH - F6       116
  1474. F7            107                SH - F7       117
  1475. F8            108                SH - F8       118
  1476. F9            109                SH - F9       119
  1477. F10           110                SH - F10      120
  1478.  
  1479. ^ - F1        121                ALT - F1      131
  1480. ^ - F2        122                ALT - F2      132
  1481. ^ - F3        123                ALT - F3      133
  1482. ^ - F4        124                ALT - F4      134
  1483. ^ - F5        125                ALT - F5      135
  1484. ^ - F6        126                ALT - F6      136
  1485. ^ - F7        127                ALT - F7      137
  1486. ^ - F8        128                ALT - F8      138
  1487. ^ - F9        129                ALT - F9      139
  1488. ^ - F10       130                ALT - F10     140
  1489.  
  1490. ALT - 1       141                ALT - 6       146
  1491. ALT - 2       142                ALT - 7       147
  1492. ALT - 3       143                ALT - 8       148
  1493. ALT - 4       144                ALT - 9       149
  1494. ALT - 5       145                ALT - 10      150
  1495.  
  1496. ALT - A       151                ^ - A         177
  1497. ALT - B       152                ^ - B         178
  1498. ALT - C       153                ^ - C         179
  1499. ALT - D       154                ^ - D         180
  1500. ALT - E       155                ^ - E         181
  1501. ALT - F       156                ^ - F         182
  1502. ALT - G       157                ^ - G         183
  1503. ALT - H       158                ^ - H         184
  1504. ALT - I       159                ^ - I         185
  1505. ALT - J       160                ^ - J         186
  1506. ALT - K       161                ^ - K         187
  1507. ALT - L       162                ^ - L         188
  1508. ALT - M       163                ^ - M         189
  1509. ALT - N       164                ^ - N         190
  1510. ALT - O       165                ^ - O         191
  1511. ALT - P       166                ^ - P         192
  1512. ALT - Q       167                ^ - Q         193
  1513. ALT - R       168                ^ - R         194
  1514. ALT - S       169                ^ - S         195
  1515. ALT - T       170                ^ - T         196
  1516. ALT - U       171                ^ - U         197
  1517. ALT - V       172                ^ - V         198
  1518. ALT - W       173                ^ - W         199
  1519. ALT - X       174
  1520. ALT - Y       175
  1521. ALT - Z       176
  1522.  
  1523. If there was pressed ESC (99) all the modifications of variable fields 
  1524. will be rejected.
  1525.  
  1526. For pull-downs and pop-ups use selectable fields, please. There is the 
  1527. following rule. If there was ENTER or ESC from a selectable field 
  1528. (cursor position on that selectable field) there will be the return 
  1529. number n+200 (n = number of the unprotected (input fileld ord selectable field) 
  1530. variable field in the actual format). If you put a function key 
  1531. onto a markable field you get the return code of the key assignment.
  1532.  
  1533. -   Error returns
  1534.  
  1535.     format file not accessable        2
  1536.     error in output formatting        3
  1537.     wrong function identifier         4
  1538.     printer not ready                 6
  1539.     transmission error to printer     7
  1540.     paper end                         8
  1541.     printer busy                      9
  1542.  
  1543.  
  1544. 8.1.2 Compile/ link
  1545.  
  1546. You have to compile your source code within the standard include file, 
  1547. the variables definition file(s) and the layout file(s). After this you 
  1548. have to link your object file(s) within the appropriate interface module 
  1549. of C-WINDOW. 
  1550.  
  1551.  
  1552. 8.1.3 Program call
  1553.  
  1554. There are two possibilities to start a program with UniForm.
  1555.  
  1556. variant 1
  1557.  
  1558. In variant 1 you put the format files <format>.BLD into the run 
  1559. directory. It's not necessary to put the layout include(s) into the 
  1560. source code. You cannot use the functions 20 to 22 (dynamic attribute 
  1561. modification).
  1562.  
  1563. variant 2
  1564.  
  1565. in variant 2 you put the layout include files into your source code 
  1566. (<format>.xxx (depending from the used compiler)). The format layout is 
  1567. read from this area. It's not necessary to have the format files 
  1568. <format>.BLD in the run directory.
  1569.  
  1570.  
  1571. 8.2 Run compiler specific
  1572.  
  1573. In the following you see all the important notes for all supported 
  1574. C dialects.
  1575.  
  1576. An easy source sample shows you how C-WINDOW works. In that example the 
  1577. format "order" is displayed. After a function key input the program is 
  1578. finished.
  1579.  
  1580.  
  1581. 8.2.1 Run in MS C/ MS Quick C
  1582.  
  1583. Standard include file    
  1584.  
  1585.   _UFC01.H
  1586.  
  1587. format specific include files    
  1588.  
  1589.   <format>.H   variables file
  1590.   <format>.I   format layout file
  1591.  
  1592. UNIF subroutine call
  1593.  
  1594.   #include "<format>.I"    
  1595.   UNIF(&FKZ,FMT,&<format>.field,&RET,&SM,Daten);
  1596.  
  1597. compile
  1598.  
  1599.   compile with the include files
  1600.  
  1601. link
  1602.  
  1603.   link within UFC01S.OBJ - model Small
  1604.   link within UFC01M.OBJ - model Medium
  1605.   link within UFC01C.OBJ - model Compact
  1606.   link within UFC01L.OBJ - model Large
  1607.   link within UFC01H.OBJ - model Huge
  1608.  
  1609. source sample "ORDER.C" - display format ORDER
  1610.  
  1611. compile:        msc order /AS
  1612.                 qcl /AS order.c
  1613. link:           link order ufc01s
  1614. program call:   order
  1615.  
  1616. #include "_UFC01.H"
  1617. #include "order.h"
  1618. main()
  1619. { FKZ=2;
  1620.   SM=0;
  1621.   memcpy(FMT,"order   ",8);
  1622.   #include "order.i"
  1623.   UNIF(&FKZ,FMT,order.product,&RET,&SM,Daten);
  1624. }
  1625.  
  1626. variables file ORDER.H
  1627.  
  1628. struct order {
  1629. unsigned char product[20];
  1630. unsigned char orderdate[8];
  1631. unsigned char nr[20];
  1632. long quantity;
  1633. float price;
  1634. } order;
  1635.  
  1636. Notes
  1637.  
  1638. The variables you have to define global.
  1639.  
  1640. Structure compression is not allowed (compiler directive /Zp).
  1641.  
  1642. If you want to call your program in variant 2 you cannot take the 
  1643. characters ALT 0 and ALT 255.
  1644.  
  1645.  
  1646. 8.2.2 Run in Turbo C, Turbo C++
  1647.  
  1648. Standard include file    
  1649.  
  1650.   _UFC02.H
  1651.  
  1652. format specific include files    
  1653.  
  1654.   <format>.H   variables file
  1655.   <format>.I   format layout file
  1656.  
  1657. UNIF subroutine call
  1658.  
  1659.   #include "<format>.I"    
  1660.   UNIF(&FKZ,FMT,&<format>.field,&RET,&SM,Daten);
  1661.  
  1662. compile
  1663.  
  1664.   Compile with the include files
  1665.  
  1666. link
  1667.  
  1668.   link within UFC02S.OBJ - model Small
  1669.   link within UFC02M.OBJ - model Medium
  1670.   link within UFC02C.OBJ - model Compact
  1671.   link within UFC02L.OBJ - model Large
  1672.   link within UFC02H.OBJ - model Huge
  1673.  
  1674. source sample "ORDER.C" - display format ORDER
  1675.  
  1676. compile:        tcc -ms -c order
  1677. link:           tlink c0s order ufc01s, order,order,,cs.lib
  1678. program call:   order
  1679.  
  1680. #include "_UFC02.H"
  1681. #include "order.h"
  1682. main()
  1683. { FKZ=2;
  1684.   SM=0;
  1685.   memcpy(FMT,"order   ",8);
  1686.   #include "order.i"
  1687.   UNIF(&FKZ,FMT,order.product,&RET,&SM,Daten);
  1688. }
  1689.  
  1690. variables file ORDER.H
  1691.  
  1692. struct order {
  1693. unsigned char product[20];
  1694. unsigned char orderdate[8];
  1695. unsigned char nr[20];
  1696. long quantity;
  1697. float price;
  1698. } order;
  1699.  
  1700. Notes
  1701.  
  1702. The variables you have to define global.
  1703.  
  1704. If you want to call your program in variant 2 you cannot take the 
  1705. characters ALT 0 and ALT 255.
  1706.  
  1707.  
  1708. 8.2.3 Run in Lattice C
  1709.  
  1710. Standard include file    
  1711.  
  1712.   _UFC03.H
  1713.  
  1714. format specific include files    
  1715.  
  1716.   <format>.H   variables file
  1717.   <format>.I   format layout file
  1718.  
  1719. UNIF subroutine call
  1720.  
  1721.   #include "<format>.I"    
  1722.   _UNIF(&FKZ,FMT,&<format>.field,&RET,&SM,Daten);
  1723.  
  1724. compile
  1725.  
  1726.   compile with the include files
  1727.  
  1728. link
  1729.  
  1730.   link within UFC03S.OBJ - model Small
  1731.   link within UFC03P.OBJ - model Medium
  1732.   link within UFC03D.OBJ - model Compact
  1733.   link within UFC03L.OBJ - model Large
  1734.  
  1735. source sample "ORDER.C" - display format ORDER
  1736.  
  1737. compile:        lc -ms order
  1738. link:           link s\c order ufc03s,order,order,s\lc
  1739. program call:   order
  1740.  
  1741. #include "_UFC03.H"
  1742. #include "order.h"
  1743. main()
  1744. { FKZ=2;
  1745.   SM=0;
  1746.   memcpy(FMT,"order   ",8);
  1747.   #include "order.i"
  1748.   _UNIF(&FKZ,FMT,order.product,&RET,&SM,Daten);
  1749. }
  1750.  
  1751. variables file ORDER.H
  1752.  
  1753. struct order {
  1754. unsigned char product[20];
  1755. unsigned char orderdate[8];
  1756. unsigned char nr[20];
  1757. long quantity;
  1758. float price;
  1759. } order;
  1760.  
  1761. Notes
  1762.  
  1763. The variables you have to define global.
  1764.  
  1765. If you want to call your program in variant 2 you cannot take the 
  1766. characters ALT 0 and ALT 255.
  1767.  
  1768.  
  1769. 9 Run in an example
  1770. --------------------
  1771.  
  1772. We want a little bit upgrade the example of chapter 5.
  1773.  
  1774. After registering an item in menu ORDER a second screen format 
  1775. MESSAGE informs about the correct update in the data base. After 
  1776. ESC the last input is ignored. After F10 the program is finished. 
  1777. You will see the screen layout before calling the program again.
  1778.  
  1779. How to generate format ORDER you can see in chapter 5. Some 
  1780. remarks to generate format MESSAGE. It is an empty format (there 
  1781. is no variable field). As a result there is no processing step 
  1782. "field names/ attributes". The subroutine have to be called by 
  1783. function identifier 4.
  1784.  
  1785. The printed source code in the following listings represents a 
  1786. special release of the compiler. If there is some 
  1787. discrepance in your compiler it may be you have a 
  1788. different release. Look into your program user guide for more 
  1789. information.
  1790.  
  1791. Because of a better understanding of the source codes there is a 
  1792. generally disclaim of the principle of structured programming.
  1793.  
  1794. You can find the source samples and the format file ORDER.BLD and 
  1795. MESSAGE.BLD on your disc (see 6.3).
  1796.  
  1797. So you can test the program in an easy way. The format layout is 
  1798. printed in the next figure.
  1799.  
  1800.      ╔════════════════════════════════════════════════════════════════╗
  1801.      ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  1802.      ║░░FORMAT ORDER░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  1803.      ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║
  1804.      ║                                                                ║
  1805.      ║                                                                ║
  1806.      ║                                                                ║
  1807.      ║      article         ████████████████████████████              ║
  1808.      ║                                                                ║
  1809.      ║      price           ████╔═════════════════════════════╗       ║
  1810.      ║                          ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║       ║
  1811.      ║      quantity        ████║░FORMAT MESSAGE░░░░░░░░░░░░░░║       ║
  1812.      ║                          ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║       ║
  1813.      ║      date            ████║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║       ║
  1814.      ║                          ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║       ║
  1815.      ║      number          ████║░░░░░░░░database ok░░░░░░░░░░║       ║
  1816.      ║                          ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║       ║
  1817.      ║                          ║░░░░░░░░░░░░░░░░░░░░░░░░░░░░░║       ║
  1818.      ║                          ╚═════════════════════════════╝       ║
  1819.      ║                                                                ║
  1820.      ╚════════════════════════════════════════════════════════════════╝
  1821.  
  1822.  
  1823. 9.1 Example "order" in MS C/ MS Quick C
  1824.  
  1825. /* variable fields */
  1826.     #include "_UFC01.h"
  1827.     #include "order.h"
  1828. main() {
  1829. /* save screen */
  1830.     FKZ = 0;
  1831.     UNIF (&FKZ, FMT, FMT, &RET, &SM, Daten);
  1832. /* clear screen and display new format */
  1833.     FKZ = 1;
  1834.     ORDER:
  1835.     memcpy(FMT, "order   ", 8);
  1836.     #include "order.i"
  1837.     UNIF (&FKZ, FMT, order.product, &RET, &SM, Daten);
  1838. /* same format when ESC */
  1839.     if(RET == 99) 
  1840.      { FKZ = 3; goto ORDER; }
  1841. /* program end when F10 */
  1842.     if(RET == 110) goto ENDE;
  1843. /* display empty format */
  1844.     FKZ = 4;
  1845.     memcpy(FMT, "message ", 8);
  1846.     #include "message.i"
  1847.     UNIF (&FKZ, FMT, FMT, &RET, &SM, Daten);
  1848. /* display new format without clear screen */
  1849.     FKZ = 2;
  1850.     goto ORDER;
  1851. /* display saved screen */
  1852.     ENDE:
  1853.     FKZ = 5;
  1854.     UNIF (&FKZ, FMT, FMT, &RET, &SM, Daten);
  1855. }
  1856.  
  1857.  
  1858. 9.2 Example "order" in Turbo C, Turbo C++
  1859.  
  1860. /* variable fields */
  1861.     #include "_UFC02.h"
  1862.     #include "order.h"
  1863. main() {
  1864. /* save screen */
  1865.     FKZ = 0;
  1866.     UNIF (&FKZ, FMT, FMT, &RET, &SM, Daten);
  1867. /* clear screen and display new format */
  1868.     FKZ = 1;
  1869.     ORDER:
  1870.     memcpy(FMT, "order   ", 8);
  1871.     #include "order.i"
  1872.     UNIF (&FKZ, FMT, order.product, &RET, &SM, Daten);
  1873. /* same format when ESC */
  1874.     if(RET == 99) 
  1875.      { FKZ = 3; goto ORDER; }
  1876. /* program end when F10 */
  1877.     if(RET == 110) goto ENDE;
  1878. /* display empty format */
  1879.     FKZ = 4;
  1880.     memcpy(FMT, "message ", 8);
  1881.     #include "message.i"
  1882.     UNIF (&FKZ, FMT, FMT, &RET, &SM, Daten);
  1883. /* display new format without clear screen */
  1884.     FKZ = 2;
  1885.     goto ORDER;
  1886. /* display saved screen */
  1887.     ENDE:
  1888.     FKZ = 5;
  1889.     UNIF (&FKZ, FMT, FMT, &RET, &SM, Daten);
  1890. }
  1891.  
  1892.  
  1893. 9.3 Example "order" in Lattice C
  1894.  
  1895. /* variable fields */
  1896.     #include "_UFC03.h"
  1897.     #include "order.h"
  1898. main() {
  1899. /* save screen */
  1900.     FKZ = 0;
  1901.     _UNIF (&FKZ, FMT, FMT, &RET, &SM, Daten);
  1902. /* clear screen and display new format */
  1903.     FKZ = 1;
  1904.     ORDER:
  1905.     memcpy(FMT, "order   ", 8);
  1906.     #include "order.i"
  1907.     _UNIF (&FKZ, FMT, order.product, &RET, &SM, Daten);
  1908. /* same format when ESC */
  1909.     if(RET == 99) 
  1910.      { FKZ = 3; goto ORDER; }
  1911. /* program end when F10 */
  1912.     if(RET == 110) goto ENDE;
  1913. /* display empty format */
  1914.     FKZ = 4;
  1915.     memcpy(FMT, "message ", 8);
  1916.     #include "message.i"
  1917.     _UNIF (&FKZ, FMT, FMT, &RET, &SM, Daten);
  1918. /* display new format without clear screen */
  1919.     FKZ = 2;
  1920.     goto ORDER;
  1921. /* display saved screen */
  1922.     ENDE:
  1923.     FKZ = 5;
  1924.     _UNIF (&FKZ, FMT, FMT, &RET, &SM, Daten);
  1925. }
  1926.  
  1927.  
  1928. 10 Example "dynamic attribute modification"
  1929. -------------------------------------------
  1930.  
  1931. With the functions 20 to 22 a dynamic change of the attributes for text, 
  1932. frame and variable fields is possible. You can use "dynamic attribute 
  1933. modification" only in variant 2 (run within the format layout file(s) in 
  1934. the source code).
  1935.  
  1936. You have to make an include to the layout file. Then you make the 
  1937. statements for dynamic attribut modification.
  1938.  
  1939. How that function works you can see in the following example.
  1940.  
  1941. Format TESTFMT is displayed in the generated attributes for text, frame 
  1942. and the both variable fields fld0 and fld1 (black on white) first. The 
  1943. attributes for text, frame and the second variable field (fld1) are 
  1944. changed into "white on black". Finally the format is displayed with the 
  1945. changed attributes.
  1946.  
  1947. In the follwowing you can see the respective source code for all 
  1948. supported compiler).
  1949.  
  1950. You can find the source code and the format file TESTFMT.BLD on your 
  1951. disc, too.
  1952.  
  1953. In the next figure you can see the format  TESTFMT.
  1954.  
  1955. ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1956. ║                                                                ║
  1957. ║                      ║
  1958. ║   TESTFMTareallysimplesample                   ║
  1959. ║                      ║
  1960. ║                                                                ║
  1961. ║              ╔══════════════════════════════╗                  ║
  1962. ║              ║ The uniform format generator ║                  ║
  1963. ║              ║ system <UNIFORM.EXE> creates ║                  ║
  1964. ║              ║ for every screen format a    ║                  ║
  1965. ║              ║ source file automatically... ║                  ║
  1966. ║              ╚══════════════════════════════╝                  ║
  1967. ║                                                                ║
  1968. ║     In this example there are two variable input fields.       ║
  1969. ║     An alphanumeric and a numeric one.                         ║
  1970. ║                                                                ║
  1971. ║        !!!!!!!!!!!!       """""""                              ║
  1972. ║                                                                ║
  1973. ║▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄║
  1974. ║     You return to DOS with ENTER or any other function key     ║
  1975. ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1976.  
  1977.  
  1978. 10.1 Example "dynamic" in MS C/ MS Quick C
  1979.  
  1980. #include "_ufc01.h"
  1981. #include "testfmt.h"
  1982. main()
  1983. {
  1984. #include "testfmt.i"
  1985. /* normal output */
  1986. memcpy(FMT,"testfmt ",8);
  1987. FKZ = 2;
  1988. SM = 0;
  1989. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  1990. /* change attribute of field fld1 */
  1991. FKZ = 20;
  1992. SM = 1;
  1993. RET = 15;
  1994. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  1995. /* output with changed field attributes */
  1996. FKZ = 3;
  1997. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  1998. /* change text attribute and frame attribute */
  1999. FKZ = 21;
  2000. RET = 15;
  2001. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2002. FKZ = 22;
  2003. RET = 15;
  2004. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2005. /* output with changed text and frame attribute */
  2006. FKZ = 2;
  2007. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2008. }
  2009.  
  2010.  
  2011. 10.2 Example "dynamic" in Turbo C, Turbo C++ 
  2012.  
  2013. #include "_ufc02.h"
  2014. #include "testfmt.h"
  2015. main()
  2016. {
  2017. #include "testfmt.i"
  2018. /* normal output */
  2019. memcpy(FMT,"testfmt ",8);
  2020. FKZ = 2;
  2021. SM = 0;
  2022. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2023. /* change attribute of field fld1 */
  2024. FKZ = 20;
  2025. SM = 1;
  2026. RET = 15;
  2027. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2028. /* output with changed field attribute */
  2029. FKZ = 3;
  2030. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2031. /* change text attribute and frame attribute */
  2032. FKZ = 21;
  2033. RET = 15;
  2034. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2035. FKZ = 22;
  2036. RET = 15;
  2037. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2038. /* output with changed text and frame attribute */
  2039. FKZ = 2;
  2040. UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2041. }
  2042.  
  2043.  
  2044. 10.3 Example "dynamic" in Lattice C
  2045.  
  2046. #include "_ufc03.h"
  2047. #include "testfmt.h"
  2048. main()
  2049. {
  2050. #include "testfmt.i"
  2051. /* normal output */
  2052. memcpy(FMT,"testfmt ",8);
  2053. FKZ = 2;
  2054. SM = 0;
  2055. _UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2056. /* change attribute of field fld1 */
  2057. FKZ = 20;
  2058. SM = 1;
  2059. RET = 15;
  2060. _UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2061. /* output with changed field attribute */
  2062. FKZ = 3;
  2063. _UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2064. /* change text attribute and frame attribute */
  2065. FKZ = 21;
  2066. RET = 15;
  2067. _UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2068. FKZ = 22;
  2069. RET = 15;
  2070. _UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2071. /* output with changed text and frmae attribute */
  2072. FKZ = 2;
  2073. _UNIF(&FKZ, FMT, testfmt.fld0, &RET, &SM, Daten);
  2074. }
  2075.  
  2076.  
  2077. 11 Cursor adressing
  2078. -------------------
  2079.  
  2080. There is the following setting for cursor and mouse in C-WINDOW.
  2081.  
  2082. - left arrow key        Cursor left
  2083. - right arrow key       Cursor right
  2084.  
  2085. - home                  Cursor to field beginning
  2086. - end                   Cursor to field end
  2087.  
  2088. - down arrow key        Cursor to next field
  2089. - up arrow key          Cursor to previous field
  2090. - page down             Cursor to next field
  2091. - page up               Cursor to previous field
  2092.  
  2093. - back slash            Delete character
  2094.  
  2095. - del                   Delete character
  2096.  
  2097. - ins (Mode)            Insert character
  2098.  
  2099.  
  2100. - mouse key left        Cursor to mouse pointer
  2101.  
  2102. - mouse key right       Cursor to mouse pointer and return to the 
  2103.                         calling program (return ENTER (RET = 100))
  2104.  
  2105.  
  2106. - sign at field end       Cursor to next varaible Field
  2107.  
  2108. - SPACE in numeric fields Accepted before decimal point
  2109.                           Replaced by 0 after decimal point
  2110.  
  2111. To
  2112. Ebnet Software
  2113. D-8000 München 70
  2114. Passauer Strasse 2 b
  2115. West Germany
  2116.  
  2117. REGISTRATION/ PURCHASE ORDER - Software utility C-WINDOW
  2118. ------------------------------------------------------------
  2119.  
  2120. Please send me (us) the software utility C-WINDOW for a charge
  2121. of $ 49.--.
  2122.  
  2123.  
  2124. I take the folowing payment:
  2125.  
  2126.    (  ) cheque payment
  2127.    (  ) transfer to the following bank account:
  2128.         Postgiroamt München       
  2129.         West Germany
  2130.         bank number 700 100 80
  2131.         account number 418194-800
  2132.    (  ) cash on deliver
  2133.         (  ) in Germany                 $  3.--
  2134.         (  ) from abroad                $  6.--
  2135.  
  2136. disc format:
  2137.    (  ) 5.25 inch disc 
  2138.    (  ) 3.5  inch disc                  $  2.--
  2139.  
  2140. For a registrated user you will get an information of a new
  2141. program release automatically. You can order it in an update 
  2142. service for the special price of $ 25.--.
  2143.  
  2144. User support is possible for registrated users exclusively.
  2145.  
  2146. Sender:
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152. Date/signature:
  2153.  
  2154. .............................
  2155.